package entidades.DAOs;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import entidades.Fecha;
import entidades.Jugador;
import entidades.Puesto;
import entidades.PuntajeDelJugador;
import entidades.DTOs.DTOJugador;
import entidades.DTOs.DTOPuesto;
import entidades.DTOs.DTOPuntaje;

import utilidades.ConexionBD;

public class DAOjugadores {
	
   //Prueba del DAO
	
	/*public static void main (String[] args) throws SQLException, ClassNotFoundException{
		
		ConexionBD.conectar();
		
		ArrayList <DTOJugador> listaPrueba = new ArrayList <DTOJugador>();
		
		listaPrueba = selectJugadores(001,3000,3500,001);
		
		for(int i=0; i<listaPrueba.size();i++){
			System.out.printf("\n %s %s | %s | %s | %f" , listaPrueba.get(i).apellido, listaPrueba.get(i).nombre, listaPrueba.get(i).equipo1raDivision, listaPrueba.get(i).m_Puesto.nombre, listaPrueba.get(i).cotizacion );
		}
		
		ConexionBD.desconectar();

	}
	
*/	
	
	public static ArrayList <DTOJugador> selectJugadores(int id_equipo,int precioMin,int precioMax,int id_puesto) throws SQLException, ClassNotFoundException{
        
        ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
        
        String sentenciaEjecutar = "SELECT J.apellido, J.nombre , P.id_puesto, P.nombre, cotizacion, J.id_jugador, E.nombre \n"
        				+ "FROM Jugador as J inner join Equipo1raDivision as E on J.id_equipo1raDivision = E.id_equipo " +
        				" inner join Puesto as P on P.id_puesto = J.id_puesto \n"
                        + "WHERE "+id_puesto+" = J.id_puesto and "+id_equipo+" = E.id_equipo"
                        + " and (cotizacion BETWEEN "+precioMin+" and "+precioMax+");";
        
        ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
        
        ArrayList <DTOJugador> listaJugadores = new ArrayList <DTOJugador>();
        
        while(resultadoConsulta.next()){
        	DTOJugador filaJugador = new DTOJugador();
            filaJugador.setApellido(resultadoConsulta.getString(1));
            filaJugador.setNombre(resultadoConsulta.getString(2));
            DTOPuesto nuevoPuesto =new DTOPuesto();
            nuevoPuesto.setId_puesto(resultadoConsulta.getInt(3));
            nuevoPuesto.setNombre(resultadoConsulta.getString(4));
            filaJugador.setM_Puesto(nuevoPuesto);
            filaJugador.setCotizacion(resultadoConsulta.getInt(5));
            filaJugador.setId_jugador(resultadoConsulta.getInt(6));
            filaJugador.setEquipo1raDivision(resultadoConsulta.getString(7));
            
            listaJugadores.add(filaJugador);
                
        }
        
        ConexionBD.desconectar();

        return listaJugadores;
                
	}
	
 public static ArrayList <DTOJugador> selectJugadoresNoPuesto(int id_equipo,int precioMin,int precioMax) throws SQLException, ClassNotFoundException{
        
        ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
        
        String sentenciaEjecutar = "SELECT J.apellido, J.nombre , P.id_puesto, P.nombre, cotizacion, J.id_jugador, E.nombre \n"
        			+ "FROM Jugador as J inner join Equipo1raDivision as E on J.id_equipo1raDivision = E.id_equipo"
        			+ " inner join Puesto as P on P.id_puesto = J.id_puesto \n"
                    + "WHERE "+id_equipo+" = E.id_equipo and (cotizacion BETWEEN "+precioMin+" and "+precioMax+");";
        
        ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
        
        ArrayList <DTOJugador> listaJugadores = new ArrayList <DTOJugador>();
        
        while(resultadoConsulta.next()){
        	DTOJugador filaJugador = new DTOJugador();
            filaJugador.setApellido(resultadoConsulta.getString(1));
            filaJugador.setNombre(resultadoConsulta.getString(2));
            DTOPuesto nuevoPuesto =new DTOPuesto();
            nuevoPuesto.setId_puesto(resultadoConsulta.getInt(3));
            nuevoPuesto.setNombre(resultadoConsulta.getString(4));
            filaJugador.setM_Puesto(nuevoPuesto);
            filaJugador.setCotizacion(resultadoConsulta.getInt(5));
            filaJugador.setId_jugador(resultadoConsulta.getInt(6));
            filaJugador.setEquipo1raDivision(resultadoConsulta.getString(7));
            
            listaJugadores.add(filaJugador);
                
        }
        
        ConexionBD.desconectar();

        return listaJugadores;
                
	}

 public static ArrayList <DTOJugador> selectJugadoresNoEquipo(int precioMin,int precioMax,int id_puesto) throws SQLException, ClassNotFoundException{
    
    ConexionBD.conectar();
    Statement sentencia=ConexionBD.conexion.createStatement();
    
    String sentenciaEjecutar = "SELECT J.apellido, J.nombre , P.id_puesto, P.nombre, cotizacion, J.id_jugador, E.nombre \n"
			+ "FROM Jugador as J inner join Equipo1raDivision as E on J.id_equipo1raDivision = E.id_equipo " +
			" inner join Puesto as P on P.id_puesto = J.id_puesto \n"
            + "WHERE "+id_puesto+" = J.id_puesto and (cotizacion BETWEEN "+precioMin+" and "+precioMax+");";
    
    ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
    
    ArrayList <DTOJugador> listaJugadores = new ArrayList <DTOJugador>();
    
    while(resultadoConsulta.next()){
    	DTOJugador filaJugador = new DTOJugador();
        filaJugador.setApellido(resultadoConsulta.getString(1));
        filaJugador.setNombre(resultadoConsulta.getString(2));
        DTOPuesto nuevoPuesto =new DTOPuesto();
        nuevoPuesto.setId_puesto(resultadoConsulta.getInt(3));
        nuevoPuesto.setNombre(resultadoConsulta.getString(4));
        filaJugador.setM_Puesto(nuevoPuesto);
        filaJugador.setCotizacion(resultadoConsulta.getInt(5));
        filaJugador.setId_jugador(resultadoConsulta.getInt(6));
        filaJugador.setEquipo1raDivision(resultadoConsulta.getString(7));
        
        listaJugadores.add(filaJugador);
            
    }
    
    ConexionBD.desconectar();

    return listaJugadores;
            
}
	
 public static int longListaJugadores(int id_equipo,int precioMin,int precioMax,int id_puesto) throws SQLException, ClassNotFoundException{
        
		int longitud = 0;
        ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
        
        String sentenciaEjecutar = "SELECT COUNT(*) \n"
        			+ "FROM Jugador as J, Equipo1raDivision as E, Puesto as P \n"
                    + "WHERE "+id_puesto+" = J.id_puesto = P.id_puesto and "+id_equipo+" = id_equipo1raDivision = E.id_equipo "
                    + " and (cotizacion BETWEEN "+precioMin+" and "+precioMax+");";
        
        ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
        
        if(resultadoConsulta.next()){
            longitud = resultadoConsulta.getInt(1);    
        }
        
        ConexionBD.desconectar();

        return longitud;
                
	}

 public static ArrayList <Integer> getIDsJugadores(int id_formacion, String tipo) throws SQLException, ClassNotFoundException{
        
        ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
        
        String sentenciaEjecutar = "SELECT id_jugador \n"
        				+ "FROM "+tipo+" \n"
                        + "WHERE "+id_formacion+" = id_form;";
        
        ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
        
        ArrayList <Integer> listaIDs = new ArrayList <Integer>();
        
        while(resultadoConsulta.next()){
                Integer IDjugador;
                IDjugador = resultadoConsulta.getInt(1);
                
                listaIDs.add(IDjugador);                
        }
        
        ConexionBD.desconectar();

        return listaIDs;
	}

 public static ArrayList <Jugador> getTitulares(ArrayList <Integer> idTitulares)throws SQLException, ClassNotFoundException {
		// TODO Auto-generated method stub
		ConexionBD.conectar();   
        int i=0;
        ArrayList <Jugador> titulares = new ArrayList <Jugador>(); 
        while (i<idTitulares.size()){
        	Statement sentencia=ConexionBD.conexion.createStatement();	
        	String sentenciaEjecutar = "SELECT * \n"
        							 + "FROM Jugador      \n"
        							 + "WHERE "+idTitulares.get(i)+" = id_jugador;";
        	ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
        	Jugador jugEncontrado = new Jugador();
        	while(resultadoConsulta.next()){
        		jugEncontrado.setId_jugador(resultadoConsulta.getInt(1));
        		jugEncontrado.setApellido(resultadoConsulta.getString(2));
        		jugEncontrado.setNombre(resultadoConsulta.getString(3));
        		jugEncontrado.setNroCamiseta(resultadoConsulta.getInt(4));
        		jugEncontrado.setCotizacion(resultadoConsulta.getDouble(5));
        		//	jugEncontrado.setM_Puesto();
        		}
        	titulares.add(jugEncontrado);
        	i++;
        	}
        ConexionBD.desconectar();
		return titulares;
	}
	
 public static int getIdPuesto(String nombre) throws SQLException, ClassNotFoundException{
		
		String todos = "TODOS";
		int id_puesto = 5;
		if(nombre.equals(todos)) return id_puesto;
		ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
        String sentenciaEjecutar ="SELECT id_puesto \n"
				 +"FROM Puesto \n"
				 +"WHERE nombre LIKE '%"+nombre+"%';";
        ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);

        if(resultadoConsulta.next()){
        		id_puesto = resultadoConsulta.getInt(1);
        }
        ConexionBD.desconectar();
        return id_puesto;
	}

 public static ArrayList <Jugador> getSuplentes(ArrayList <Integer> idSuplentes)throws SQLException, ClassNotFoundException {
		// TODO Auto-generated method stub
		ConexionBD.conectar();   
        int i=0;
        ArrayList <Jugador> suplentes = new ArrayList <Jugador>(); 
        while (i<idSuplentes.size()){
        	Statement sentencia=ConexionBD.conexion.createStatement();	
        	String sentenciaEjecutar = "SELECT * \n"
        							 + "FROM Jugador      \n"
        							 + "WHERE "+idSuplentes.get(i)+" = id_jugador;";
        	ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
        	Jugador jugEncontrado = new Jugador();
        	while(resultadoConsulta.next()){
        		jugEncontrado.setId_jugador(resultadoConsulta.getInt(1));
        		jugEncontrado.setApellido(resultadoConsulta.getString(2));
        		jugEncontrado.setNombre(resultadoConsulta.getString(3));
        		jugEncontrado.setNroCamiseta(resultadoConsulta.getInt(4));
        		jugEncontrado.setCotizacion(resultadoConsulta.getDouble(5));
        		//	jugEncontrado.setM_Puesto();
        		}
        	suplentes.add(jugEncontrado);
        	i++;
        	}
        ConexionBD.desconectar();
		return suplentes;
	}
	

 public static ArrayList <DTOJugador> selectJugadores(int id_equipo) throws SQLException, ClassNotFoundException{
        
        ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
        
        String sentenciaEjecutar = "SELECT J.apellido, J.Nombre, P.id_puesto, P.nombre, J.nro_camiseta, J.id_jugador \n"
        				+ "FROM Jugador as J, Puesto as P \n"
                        + "WHERE "+id_equipo+" = id_equipo1raDivision and J.id_puesto = P.id_puesto;";
        
        ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
        
        ArrayList <DTOJugador> listaJugadores = new ArrayList <DTOJugador>();
        
        while(resultadoConsulta.next()){
                DTOJugador filaJugador = new DTOJugador();
                filaJugador.setApellido(resultadoConsulta.getString(1));
                filaJugador.setNombre(resultadoConsulta.getString(2));
                DTOPuesto nuevoPuesto =new DTOPuesto();
                nuevoPuesto.setId_puesto(resultadoConsulta.getInt(3));
                nuevoPuesto.setNombre(resultadoConsulta.getString(4));
                filaJugador.setM_Puesto(nuevoPuesto);
                filaJugador.setNroCamiseta(resultadoConsulta.getInt(5));
                filaJugador.setId_jugador(resultadoConsulta.getInt(6));
                
                listaJugadores.add(filaJugador);
                
        }
        
        ConexionBD.desconectar();

        return listaJugadores;
                
	}


 public static PuntajeDelJugador cargarPuntajesJugador(int id_jugador) throws SQLException, ClassNotFoundException{
		ConexionBD.conectar();
        Statement sql=ConexionBD.conexion.createStatement();
        ResultSet rsPuntaje = sql.executeQuery("SELECT * FROM puntajedeljugador WHERE id_jugador = "+id_jugador+";");
        
        if(rsPuntaje.getRow()<1){
        	rsPuntaje.first();
        }
        DTOPuntaje dtoPunt = new DTOPuntaje();
        
        if(rsPuntaje.getRow()==0){
    		dtoPunt.setAmarilla(false);
    		dtoPunt.setCalificacion(0);
    		dtoPunt.setFiguraCancha(false);
    		dtoPunt.setGolesConvertidos(0);
    		dtoPunt.setGolesRecibidos(0);
    		dtoPunt.setId_fecha(0);
    		dtoPunt.setId_jugador(id_jugador);
    		dtoPunt.setId_partido(0);
    		dtoPunt.setJugoMenos20Min(true);
    		dtoPunt.setPenalesAtajados(0);
    		dtoPunt.setPenalesConvertidos(0);
    		dtoPunt.setPenalesErrados(0);
    		dtoPunt.setRoja(false);
//    		PuntajeDelJugador auxPunt = new PuntajeDelJugador(dtoPunt, 1);
        }
        else{
		dtoPunt.setAmarilla(rsPuntaje.getBoolean("amarilla"));
		dtoPunt.setCalificacion(rsPuntaje.getInt("calificacion"));
		dtoPunt.setFiguraCancha(rsPuntaje.getBoolean("figuraCancha"));
		dtoPunt.setGolesConvertidos(rsPuntaje.getInt("golesConvertidos"));
		dtoPunt.setGolesRecibidos(rsPuntaje.getInt("golesRecibidos"));
		dtoPunt.setId_fecha(rsPuntaje.getInt("id_fecha"));
		dtoPunt.setId_jugador(id_jugador);
		dtoPunt.setId_partido(rsPuntaje.getInt("id_partido"));
		dtoPunt.setJugoMenos20Min(rsPuntaje.getBoolean("jugoMenos20min"));
		dtoPunt.setPenalesAtajados(rsPuntaje.getInt("penalesAtajados"));
		dtoPunt.setPenalesConvertidos(rsPuntaje.getInt("penalesConvertidos"));
		dtoPunt.setPenalesErrados(rsPuntaje.getInt("penalesErrados"));
		dtoPunt.setRoja(rsPuntaje.getBoolean("roja"));
		
        }
        PuntajeDelJugador auxPunt = new PuntajeDelJugador(dtoPunt, 1);
		ConexionBD.desconectar();
        return auxPunt;
	}

 
 public static ArrayList<ArrayList<Jugador>> getJugadores(int id_equipo, Fecha fecha) throws SQLException, ClassNotFoundException{
		
		ConexionBD.conectar();
		Statement sql=ConexionBD.conectar().createStatement();
		Statement sqlForm = ConexionBD.conectar().createStatement();
		Statement sqlTitStatement = ConexionBD.conectar().createStatement();
		Statement sqlSupStatement = ConexionBD.conectar().createStatement();
		ResultSet rsFormacion=sqlForm.executeQuery("SELECT * FROM formacion WHERE id_equipo ="+id_equipo+" AND id_fecha = "+fecha.getId_fecha()+";");
		
		ArrayList<ArrayList<Jugador>> auxForm = new ArrayList<ArrayList<Jugador>>();
		
		while(rsFormacion.next()){
			/*Seteo de variables*/
			int id_formacion = rsFormacion.getInt("id_form");
			ArrayList<Jugador> titulares = new ArrayList<Jugador>();
			ArrayList<Jugador> suplentes = new ArrayList<Jugador>();
			
			
			/*Seteo de Titulares*/
			ResultSet rsTitulares = sqlTitStatement.executeQuery("SELECT id_jugador FROM titulares WHERE titulares.id_form="+Integer.toString(id_formacion)+";");
			
			while(rsTitulares.next()){
				ArrayList<PuntajeDelJugador> auxPunt = new ArrayList<PuntajeDelJugador>();
				int idJugador = rsTitulares.getInt("id_jugador");
				ResultSet rsJugTit = sql.executeQuery("SELECT * FROM jugador WHERE jugador.id_jugador="+Integer.toString(idJugador)+";");
				
				if(rsJugTit.getRow()<1){
					rsJugTit.next();
				}
				
				/*Seteo Variables Jugador*/
				Jugador aux = new Jugador();
				aux.setApellido(rsJugTit.getString("apellido"));
				aux.setCotizacion(rsJugTit.getInt("cotizacion"));
				aux.setId_jugador(rsJugTit.getInt("id_jugador"));
				aux.setNombre(rsJugTit.getString("nombre"));
				aux.setNroCamiseta(rsJugTit.getInt("nro_camiseta"));


				auxPunt.add(DAOjugadores.cargarPuntajesJugador(aux.getId_jugador()));
				aux.setPuntajesJugador(auxPunt);
				System.out.println("Titular: "+aux.getApellido()+", "+aux.getNombre()+"---->"+auxPunt.get(auxPunt.size()-1).getCalificacion());

				
				ResultSet rsPuesto = sql.executeQuery("SELECT * FROM puesto WHERE puesto.id_puesto="+Integer.toString(rsJugTit.getInt("id_puesto"))+";");
				if(rsPuesto.getRow()<1){
					rsPuesto.next();
				}
				
				Puesto auxPuesto = new Puesto();
				auxPuesto.setId_puesto(rsPuesto.getInt("id_puesto"));
				auxPuesto.setNombre(rsPuesto.getString("nombre"));
				aux.setM_Puesto(auxPuesto);
				
				titulares.add(aux);
				
			}
			
			/*Seteo de Suplentes*/
			ResultSet rsSuplentes = sqlSupStatement.executeQuery("SELECT id_jugador FROM suplentes WHERE suplentes.id_form="+Integer.toString(id_formacion)+";");
			
			while(rsSuplentes.next()){
				ArrayList<PuntajeDelJugador> auxPunt=new ArrayList<PuntajeDelJugador>();
				ResultSet rsJugSup = sql.executeQuery("SELECT * FROM jugador WHERE jugador.id_jugador="+Integer.toString(rsSuplentes.getInt("id_jugador"))+";");
				if(rsJugSup.getRow()<1){
					rsJugSup.next();
				}
				
				Jugador aux = new Jugador();
				/*Seteo Variables Jugador*/
				aux.setApellido(rsJugSup.getString("apellido"));
				aux.setCotizacion(rsJugSup.getInt("cotizacion"));
				aux.setId_jugador(rsJugSup.getInt("id_jugador"));
				aux.setNombre(rsJugSup.getString("nombre"));
				aux.setNroCamiseta(rsJugSup.getInt("nro_camiseta"));


				auxPunt.add(DAOjugadores.cargarPuntajesJugador(aux.getId_jugador()));
				aux.setPuntajesJugador(auxPunt);
//				System.out.println("Suplente: "+aux.getApellido()+", "+aux.getNombre()+"---->"+auxPunt.get(auxPunt.size()-1).getCalificacion());

				
				
				ResultSet rsPuesto = sql.executeQuery("SELECT * FROM puesto WHERE puesto.id_puesto="+Integer.toString(rsJugSup.getInt("id_puesto"))+";");
				if(rsPuesto.getRow()<1){
					rsPuesto.next();
				}
				
				Puesto auxPuesto = new Puesto();
				auxPuesto.setId_puesto(rsPuesto.getInt("id_puesto"));
				auxPuesto.setNombre(rsPuesto.getString("nombre"));
				aux.setM_Puesto(auxPuesto);
				
				suplentes.add(aux);
				
			}

			/*Creacion de la Formacion*/
			auxForm.add(titulares);auxForm.add(suplentes);
			
			//System.out.println("--------------------------------------");
		}
		
		
		return auxForm;
		
	}
 


	public static int cantidadJugadoresPuesto(ArrayList<Integer> idJugadores, int id_jugador) throws SQLException, ClassNotFoundException {
		ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
		int cantidad=0;
		int puesto=0;
		int id_puesto=0;
		
		String sentenciaEjecutar = "SELECT id_puesto \n"
				+"FROM Jugador \n"
				+"WHERE id_jugador = "+id_jugador+";";
		
		ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
		
		if(resultadoConsulta.next()){
    		id_puesto = resultadoConsulta.getInt(1);
		}	
		
		
		for(int i=0; i<idJugadores.size();i++){
			sentenciaEjecutar = "SELECT id_puesto \n"
										+"FROM Jugador \n"
										+"WHERE id_jugador = "+idJugadores.get(i)+";";
			
			resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
			
			if(resultadoConsulta.next()){
        		puesto = resultadoConsulta.getInt(1);
        		if (puesto == id_puesto) cantidad++;
			}	
		}
		ConexionBD.desconectar();
		return cantidad;
	}
	
	public static int cantidadJugadoresEquipo(ArrayList<Integer> idJugadores, int id_jugador) throws SQLException, ClassNotFoundException {
		ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
		int cantidad=0;
		int equipo=0;
		int id_equipo=0;
		
		String sentenciaEjecutar = "SELECT id_equipo1raDivision \n"
				+"FROM Jugador \n"
				+"WHERE id_jugador = "+id_jugador+";";
		
		ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
		
		if(resultadoConsulta.next()){
    		id_equipo = resultadoConsulta.getInt(1);
		}	
		
		for(int i=0; i<idJugadores.size();i++){
			sentenciaEjecutar = "SELECT id_equipo1raDivision \n"
										+"FROM Jugador \n"
										+"WHERE id_jugador = "+idJugadores.get(i)+";";
			
			resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
			
			if(resultadoConsulta.next()){
        		equipo = resultadoConsulta.getInt(1);
        		if (equipo == id_equipo) cantidad++;
			}	
		}
		ConexionBD.desconectar();
		return cantidad;
	}
	
	public static int getCotizacionJugador(int id_jugador) throws SQLException, ClassNotFoundException {
		ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
		int cotizacion=0;
		
		String sentenciaEjecutar = "SELECT cotizacion \n"
									+"FROM Jugador \n"
									+"WHERE id_jugador = "+id_jugador+";";
			
		ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
		
		if(resultadoConsulta.next()){
        	cotizacion = resultadoConsulta.getInt(1);
		}
		ConexionBD.desconectar();
		return cotizacion;
	}
	
	public static int getIdPuesto(int id_jugador) throws SQLException, ClassNotFoundException {
		ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
		int idPuesto=0;
		
		String sentenciaEjecutar = "SELECT id_puesto \n"
									+"FROM Jugador \n"
									+"WHERE id_jugador = "+id_jugador+";";
		
		ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
		
		if(resultadoConsulta.next()){
        	idPuesto = resultadoConsulta.getInt(1);	
		}
		ConexionBD.desconectar();
		return idPuesto;
	}
	
	public static DTOJugador getJugador(int id_jugador) throws SQLException, ClassNotFoundException{
        
        ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
        
        String sentenciaEjecutar = "SELECT apellido, J.nombre, J.id_puesto, P.nombre, cotizacion, id_jugador, id_equipo1raDivision, nro_camiseta \n"
        			+ "FROM Jugador as J inner join Puesto as P on P.id_puesto = J.id_puesto \n"
                    + "WHERE "+id_jugador+" = id_jugador;";
        
        ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
        
        DTOJugador jugador = new DTOJugador();
        
        if(resultadoConsulta.next()){
            jugador.setApellido(resultadoConsulta.getString(1));
            jugador.setNombre(resultadoConsulta.getString(2));
            DTOPuesto nuevoPuesto =new DTOPuesto();
            nuevoPuesto.setId_puesto(resultadoConsulta.getInt(3));
            nuevoPuesto.setNombre(resultadoConsulta.getString(4));
            jugador.setM_Puesto(nuevoPuesto);
            jugador.setCotizacion(resultadoConsulta.getInt(5));
            jugador.setId_jugador(resultadoConsulta.getInt(6));
            jugador.setEquipo1raDivision(resultadoConsulta.getString(7));
            jugador.setNroCamiseta(resultadoConsulta.getInt(8));
                
        }
        
        ConexionBD.desconectar();

        return jugador;
                
	}
	 public static ArrayList <DTOJugador> getAllJugadores(int precioMin,int precioMax) throws SQLException, ClassNotFoundException{
		    
		    ConexionBD.conectar();
		    Statement sentencia=ConexionBD.conexion.createStatement();
		    
		    String sentenciaEjecutar = "SELECT J.apellido, J.nombre , P.id_puesto, P.nombre, cotizacion, J.id_jugador, E.nombre \n"
					+ "FROM Jugador as J inner join Equipo1raDivision as E on J.id_equipo1raDivision = E.id_equipo " +
					" inner join Puesto as P on P.id_puesto = J.id_puesto \n"
		            + "WHERE (cotizacion BETWEEN "+precioMin+" and "+precioMax+");";
		    
		    ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
		    
		    ArrayList <DTOJugador> listaJugadores = new ArrayList <DTOJugador>();
		    
		    while(resultadoConsulta.next()){
		    	DTOJugador filaJugador = new DTOJugador();
		        filaJugador.setApellido(resultadoConsulta.getString(1));
		        filaJugador.setNombre(resultadoConsulta.getString(2));
		        DTOPuesto nuevoPuesto =new DTOPuesto();
		        nuevoPuesto.setId_puesto(resultadoConsulta.getInt(3));
		        nuevoPuesto.setNombre(resultadoConsulta.getString(4));
		        filaJugador.setM_Puesto(nuevoPuesto);
		        filaJugador.setCotizacion(resultadoConsulta.getInt(5));
		        filaJugador.setId_jugador(resultadoConsulta.getInt(6));
		        filaJugador.setEquipo1raDivision(resultadoConsulta.getString(7));
		        
		        listaJugadores.add(filaJugador);
		            
		    }
		    
		    ConexionBD.desconectar();

		    return listaJugadores;
		            
		}

}




